home *** CD-ROM | disk | FTP | other *** search
/ The Arsenal Files 8 / The Arsenal Files Collection #8 (Arsenal Computer) (1996).ISO / pcboard / vrs501.zip / VRS-M100.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1996-10-08  |  23KB  |  859 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.2O (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Integer  INTEGER001
  20.     Integer  INTEGER002
  21.     Integer  INTEGER003
  22.     Integer  INTEGER004
  23.     Integer  INTEGER005
  24.     Integer  INTEGER006
  25.     Integer  INTEGER007
  26.     Integer  INTEGER008
  27.     Integer  INTEGER009
  28.     Integer  INTEGER010
  29.     Integer  INTEGER011
  30.     Integer  INTEGER012
  31.     Integer  INTEGER013
  32.     Integer  INTEGER014
  33.     Integer  INTEGER015
  34.     Integer  INTEGER016
  35.     Integer  INTEGER017
  36.     Integer  INTEGER018
  37.     Integer  INTEGER019
  38.     Integer  INTEGER020
  39.     Integer  INTEGER021
  40.     Integer  INTEGER022
  41.     Integer  INTEGER023
  42.     Integer  INTEGER024
  43.     Integer  INTEGER025
  44.     Integer  INTEGER026
  45.     Integer  INTEGER027
  46.     Integer  INTEGER028
  47.     Integer  INTEGER029
  48.     Integer  INTEGER030
  49.     Integer  INTEGER031
  50.     Integer  INTEGER032
  51.     Integer  INTEGER033
  52.     Integer  INTEGER034
  53.     Integer  INTEGER035
  54.     Integer  INTEGER036
  55.     Integer  INTEGER037
  56.     Integer  INTEGER038
  57.     Integer  INTEGER039
  58.     Integer  INTEGER040
  59.     Integer  INTEGER041
  60.     Integer  INTEGER042
  61.     Integer  INTEGER043
  62.     Integer  INTEGER044
  63.     Integer  INTEGER045
  64.     Integer  INTEGER046
  65.     Integer  INTEGER047
  66.     Integer  INTEGER048
  67.     Integer  INTEGER049
  68.     Integer  INTEGER050
  69.     Integer  INTEGER051
  70.     Integer  INTEGER052
  71.     Integer  INTEGER053
  72.     Integer  INTEGER054
  73.     Integer  INTEGER055
  74.     Integer  INTEGER056
  75.     Integer  INTEGER057
  76.     Integer  INTEGER058
  77.     Integer  INTEGER059
  78.     Integer  INTEGER060
  79.     Integer  INTEGER061
  80.     Integer  INTEGER062
  81.     Integer  INTEGER063
  82.     String   STRING001
  83.     String   STRING002
  84.     String   STRING003
  85.     String   STRING004
  86.     String   STRING005
  87.     String   STRING006
  88.     String   STRING007
  89.     String   STRING008
  90.     String   STRING009
  91.     String   STRING010
  92.     String   STRING011
  93.     String   STRING012
  94.     String   STRING013
  95.     String   STRING014
  96.     String   STRING015
  97.     String   STRING016
  98.     String   STRING017
  99.     String   STRING018
  100.     String   STRING019
  101.     String   STRING020
  102.     String   STRING021
  103.     String   STRING022
  104.     String   STRING023
  105.     String   STRING024
  106.     String   STRING025
  107.  
  108. ;------------------------------------------------------------------------------
  109.  
  110.     Goto LABEL001
  111.     End
  112.     If (0 == 0) STRING001 = "NO"
  113.     If (0 == 1) STRING001 = "YES"
  114.  
  115.     EndFunc
  116.  
  117.     :LABEL001
  118.     STRING006 = String(PcbNode())
  119.     If (PcbNode() == 0) STRING006 = "A"
  120.     STRING004 = GetEnv(STRING006 + "RECNO")
  121.     STRING004 = ToInteger(STRING004)
  122.     STRING005 = Random(100)
  123.     DCloseAll
  124.     Cls
  125.     PrintLn "@X0ESmells funny down here... kinda like a mutant....@X0F"
  126.     DOpen 0, PPEPath() + "USER.DBF", 0
  127.     DGo 0, STRING004
  128.     DOpen 2, PPEPath() + "MUTANT.DBF", 0
  129.     INTEGER055 = DRecNo(0)
  130.     PrintLn 
  131.     PrintLn "@X0E... or a politician....@X0F"
  132.     DGet 0, "HANDLE", STRING018
  133.     STRING018 = Trim(STRING018, " ")
  134.     DGet 0, "CASH", INTEGER061
  135.     DGet 0, "WEAPN0", INTEGER038
  136.     DGet 0, "WEAPN1", INTEGER041
  137.     DGet 0, "WEAPN2", INTEGER044
  138.     DGet 0, "S_W_NUMBER", INTEGER047
  139.     INTEGER028 = INTEGER038
  140.     DGet 0, "WEAPT0", STRING021
  141.     DGet 0, "WEAPT1", STRING022
  142.     DGet 0, "WEAPT2", STRING023
  143.     DGet 0, "S_W_NAME", STRING024
  144.     STRING019 = STRING021
  145.     DGet 0, "WEAPA0", INTEGER039
  146.     DGet 0, "WEAPA1", INTEGER042
  147.     DGet 0, "WEAPA2", INTEGER045
  148.     DGet 0, "S_W_AMMO", INTEGER048
  149.     INTEGER053 = INTEGER039
  150.     DGet 0, "WEAPD0", INTEGER040
  151.     DGet 0, "WEAPD1", INTEGER043
  152.     DGet 0, "WEAPD2", INTEGER046
  153.     DGet 0, "S_W_DAMAGE", INTEGER049
  154.     INTEGER057 = INTEGER040
  155.     DGet 0, "HITPTS_L", INTEGER052
  156.     DGet 0, "ARMOR_D", INTEGER054
  157.     DGet 0, "LEVEL", INTEGER056
  158.     DGet 0, "EXP", INTEGER062
  159.     DGet 0, "DEF_STR", INTEGER059
  160.     DGet 0, "OFF_STR", INTEGER058
  161.     INTEGER009 = INTEGER038 + INTEGER041 + INTEGER044 + INTEGER047
  162.     INTEGER063 = Random(4)
  163.     If (INTEGER063 == 0) STRING025 = "Democrats"
  164.     If (INTEGER063 == 1) STRING025 = "Republicans"
  165.     If (INTEGER063 == 2) STRING025 = "Libertarians"
  166.     If (INTEGER063 == 3) STRING025 = "Anarchists"
  167.     PrintLn 
  168.     PrintLn "@X0AYou scan the area carefully, and see no ", STRING025, ", but...@X0F"
  169.     PrintLn 
  170.     :LABEL002
  171.     INTEGER017 = Random(100)
  172.     DGo 0, STRING004
  173.     If (DGet(0, "LEVEL") < 12) Then
  174.         INTEGER008 = Random(100)
  175.         If (INTEGER008 == 99) Goto LABEL003
  176.     ElseIf (DGet(0, "LEVEL") > 11) Then
  177.         INTEGER008 = Random(2)
  178.         If (INTEGER008 == 0) Goto LABEL003
  179.     Endif
  180.     If (INTEGER017 < 1) Goto LABEL002
  181.     DGo 2, INTEGER017
  182.     If (DGet(2, "LEVEL") > INTEGER056 + 2) Goto LABEL002
  183.     Goto LABEL004
  184.     :LABEL003
  185.     INTEGER017 = 1
  186.     :LABEL004
  187.     DnCloseAll 2
  188.     Delete PPEPath() + STRING005 + ".NDX"
  189.     DGo 2, INTEGER017
  190.     DGet 2, "HANDLE", STRING012
  191.     STRING012 = Trim(STRING012, " ")
  192.     DGet 2, "CASH", INTEGER026
  193.     DGet 2, "WEAPN0", INTEGER029
  194.     DGet 2, "WEAPN1", INTEGER032
  195.     DGet 2, "WEAPN2", INTEGER035
  196.     INTEGER025 = INTEGER029
  197.     DGet 2, "WEAPT0", STRING015
  198.     DGet 2, "WEAPT1", STRING016
  199.     DGet 2, "WEAPT2", STRING017
  200.     STRING013 = STRING015
  201.     DGet 2, "WEAPA0", INTEGER030
  202.     DGet 2, "WEAPA1", INTEGER033
  203.     DGet 2, "WEAPA2", INTEGER036
  204.     INTEGER015 = INTEGER030
  205.     DGet 2, "WEAPD0", INTEGER031
  206.     DGet 2, "WEAPD1", INTEGER034
  207.     DGet 2, "WEAPD2", INTEGER037
  208.     INTEGER019 = INTEGER031
  209.     DGet 2, "HITPTS_L", INTEGER014
  210.     DGet 2, "HITPTS_B", INTEGER004
  211.     If (INTEGER014 < 1) DPut 2, "HITPTS_L", INTEGER004
  212.     DGet 2, "HITPTS_L", INTEGER014
  213.     DGet 2, "ARMOR_D", INTEGER016
  214.     DGet 2, "LEVEL", INTEGER018
  215.     DGet 2, "EXP", INTEGER027
  216.     DGet 2, "DEF_STR", INTEGER021
  217.     DGet 2, "OFF_STR", INTEGER020
  218.     INTEGER001 = Random(2)
  219.     Select Case (INTEGER001)
  220.         Case 0
  221.             PrintLn "@X0EYou come up behind @X0F" + Mixed(STRING012)
  222.             STRING008 = 0
  223.         Case 1
  224.             PrintLn "@X0EYou see " + Mixed(STRING012) + "... And the Mutie sees YOU!@X0F"
  225.             STRING008 = 1
  226.         Case 2
  227.             PrintLn "@X0EYou see nothing but wreckage... Until " + Mixed(STRING012) + " attacks you from behind!@X0F"
  228.             STRING008 = 2
  229.     End Select
  230.     Delay (2 * 182) / 10
  231.     If (INTEGER038 + INTEGER041 + INTEGER044 + INTEGER047 > 0) Gosub LABEL028
  232.     :LABEL005
  233.     If (INTEGER053 < 1) Then
  234.         Cls
  235.         PrintLn "You're out of ammo for that weapon!"
  236.         PrintLn "You use your fists while attempting to change weapons!"
  237.         STRING019 = STRING021
  238.         INTEGER053 = INTEGER039
  239.         INTEGER057 = INTEGER040
  240.         INTEGER028 = INTEGER038
  241.         Delay (2 * 182) / 10
  242.     Endif
  243.     INTEGER012 = Len(STRING018)
  244.     INTEGER013 = (35 - INTEGER012) / 2
  245.     INTEGER010 = Len(STRING012)
  246.     INTEGER011 = (35 - INTEGER010) / 2
  247.     Cls
  248.     StartDisp 1
  249.     PrintLn "@X09┌───────────────────┤@X0E", Space(INTEGER013), STRING018, "@POS:57@@X09├─────────────────────┐@X0F"
  250.     PrintLn "@X09│ ─────────────────────────────────────────────────────────────────────────── │@X0F"
  251.     PrintLn "@X09│ @X0BWeapon In Use                       Life Left     Ammo Left     Armor Left  @X09│@X0F"
  252.     PrintLn "@X09│ ─────────────────────────────────────────────────────────────────────────── │@X0F"
  253.     PrintLn "@X09│@X03 ", STRING019, "@POS:39@", INTEGER052, "@POS:54@", INTEGER053, "@POS:67@", INTEGER054, "@POS:79@@X09│@X0F"
  254.     PrintLn "@X09│ ────Strike against you was───────────────────────────────────────────────── │@X0F"
  255.     PrintLn "@X09│@X0E ", STRING003, "@POS:79@@X09│@X0F"
  256.     PrintLn "@X09└─────────────────────────────────────────────────────────────────────────────┘@X0F"
  257.     PrintLn "@X09┌───────────────────┤@X06", Space(INTEGER011), STRING012, "@POS:57@@X09├─────────────────────┐@X0F"
  258.     PrintLn "@X09│ ─────────────────────────────────────────────────────────────────────────── │@X0F"
  259.     PrintLn "@X09│@X0D Weapon In Use                     Life Left     Ammo Left     Armor Left    @X09│@X0F"
  260.     PrintLn "@X09│ ─────────────────────────────────────────────────────────────────────────── │@X0F"
  261.     PrintLn "@X09│@X05 ", STRING013, "@POS:39@", INTEGER014, "@POS:54@", INTEGER015, "@POS:67@", INTEGER016, "@POS:79@@X09│@X0F"
  262.     PrintLn "@X09│ ────Result of your strike────────────────────────────────────────────────── │@X0F"
  263.     PrintLn "@X09│@X0E ", STRING002, "@POS:79@@X09│@X0F"
  264.     PrintLn "@X09└─────────────────────────────────────────────────────────────────────────────┘@X0F"
  265.     PrintLn "@X04═══════════════════════════════════════════════════════════════════════════════@X0F"
  266.     If (STRING008 == 0) PrintLn "@X02(@X0DS@X02)neak Away"
  267.     If (INTEGER038 + INTEGER041 + INTEGER044 + INTEGER047 > 0) PrintLn "@X02(@X0DC@X02)HANGE WEAPON"
  268.     PrintLn "@X02(@X0DA@X02)ttack!"
  269.     PrintLn "@X02(@X0DR@X02)un Away!"
  270.     If (INTEGER009 > 0) PrintLn "@X02(@X0DN@X02)egotiate with ", Mixed(STRING012)
  271.     If (STRING008 == 0) Then
  272.         If (INTEGER009 > 0) InputStr "Your Choice Soldier > _", STRING007, 10, 1, "SCARN", 0 + 8
  273.         If (INTEGER009 < 1) InputStr "Your Choice Soldier > _", STRING007, 10, 1, "SCAR", 0 + 8
  274.         STRING008 = 1
  275.     Else
  276.         STRING008 = 1
  277.         If (INTEGER009 > 0) InputStr "Your Choice Soldier > _", STRING007, 10, 1, "CARN", 0 + 8
  278.         If (INTEGER009 < 1) InputStr "Your Choice Soldier > _", STRING007, 10, 1, "CAR", 0 + 8
  279.     Endif
  280.     Select Case (STRING007)
  281.         Case "S"
  282.             Gosub LABEL008
  283.             If (INTEGER051 < 40) Then
  284.                 Newlines 3
  285.                 PrintLn "Quiet little bugger, aren't you?"
  286.                 Newlines 2
  287.                 PrintLn Mixed(STRING012), " didn't even twitch!"
  288.                 Goto LABEL029
  289.             Endif
  290.             Newlines 3
  291.             PrintLn "Nice try, but you made enought noise to wake the dead...."
  292.             STRING008 = 1
  293.             Goto LABEL005
  294.         Case "C"
  295.             Gosub LABEL028
  296.             Goto LABEL005
  297.         Case "A"
  298.             INTEGER003 = 1
  299.             Goto LABEL008
  300.         Case "R"
  301.             INTEGER001 = Random(100)
  302.             If (INTEGER001 < 50) Then
  303.                 StartDisp 1
  304.                 Backup 80
  305.                 ClrEol
  306.                 PrintLn "@X0B", STRING012 + "@X0E misses you!  Good dodging there!"
  307.                 Delay (3 * 182) / 10
  308.                 Goto LABEL029
  309.             Else
  310.                 STRING003 = "@X0CCoward!  @X0EWhen you turned your back to flee, you were hit again!@X0F"
  311.                 STRING002 = "@X0ERunning like a dog...eh? Well " + Mixed(STRING018) + " it won't do any good!@X0F"
  312.                 INTEGER003 = 0
  313.                 Goto LABEL008
  314.             Endif
  315.         Case "N"
  316.             INTEGER006 = Random(1)
  317.             If (INTEGER006 == 0) Then
  318.                 Cls
  319.                 PrintLn "@X0EThis is a reasonable Mutant@X0F"
  320.                 PrintLn 
  321.                 Print "@X0EThe mutant demands your "
  322.                 If (INTEGER044 > 0) Then
  323.                     Print "@X0B", Trim(STRING023, " ")
  324.                     INTEGER007 = 2
  325.                     Goto LABEL006
  326.                 Endif
  327.                 If (INTEGER041 > 1) Then
  328.                     Print "", Trim(STRING022, " ")
  329.                     INTEGER007 = 1
  330.                     Goto LABEL006
  331.                 Endif
  332.                 Print "", Trim(STRING021, " ")
  333.                 :LABEL006
  334.                 PrintLn " @X0Eto let you live!@X0F"
  335.                 Newline
  336.                 :LABEL007
  337.                 InputStr "@X0ADo you @X0EG@X0Aive the mutie what it wants, or do you @X8CF@X0Aight on @X02(@X0EG@X02/@X8CF@X02) _", STRING007, 10, 1, "GF", 0 + 8
  338.                 If (STRING007 == "") Then
  339.                     Backup 80
  340.                     ClrEol
  341.                     Goto LABEL007
  342.                 Endif
  343.                 If (STRING007 == "F") Goto LABEL005
  344.                 If (STRING007 == "G") Then
  345.                     If (INTEGER007 == 1) Then
  346.                         Newlines 2
  347.                         PrintLn "Surrendering your ", DGet(0, "weapt1")
  348.                         Newlines 2
  349.                         DPut 0, "WEAPN1", 0
  350.                         DPut 0, "WEAPT1", "BUY ONE!"
  351.                         DPut 0, "WEAPA1", 0
  352.                         DPut 0, "WEAPD1", 0
  353.                         Call PPEPath() + "VRS-M19.PPE"
  354.                     Endif
  355.                     If (INTEGER007 == 2) Then
  356.                         Newlines 2
  357.                         PrintLn "Surrendering your ", DGet(0, "weapt2")
  358.                         Newlines 2
  359.                         DPut 0, "WEAPN2", 0
  360.                         DPut 0, "WEAPT2", "BUY ONE!"
  361.                         DPut 0, "WEAPA2", 0
  362.                         DPut 0, "WEAPD2", 0
  363.                         Call PPEPath() + "VRS-M19.PPE"
  364.                     Endif
  365.                     Goto LABEL029
  366.                 Endif
  367.             Endif
  368.             Backup 80
  369.             ClrEol
  370.             Print "@X0EThis is a @X0CVERY@X0E unreasonable mutant, the sneer on it's face holds your answer@X0F"
  371.             Delay (2 * 182) / 10
  372.             Goto LABEL005
  373.             Goto LABEL029
  374.     End Select
  375.     :LABEL008
  376.     INTEGER060 = INTEGER056 + INTEGER058 + INTEGER054 + ToInteger(INTEGER059)
  377.     INTEGER022 = INTEGER018 + INTEGER020 + INTEGER016 + ToInteger(INTEGER021)
  378.     INTEGER051 = Random(100) - INTEGER060
  379.     INTEGER024 = Random(100) - INTEGER022
  380.     INTEGER051 = Abs(INTEGER051) - Abs(INTEGER024)
  381.     INTEGER051 = Abs(INTEGER051)
  382.     INTEGER024 = Abs(INTEGER024) - Abs(INTEGER051)
  383.     INTEGER024 = Abs(INTEGER024)
  384.     If (INTEGER003 == 0) Goto LABEL016
  385.     If (INTEGER051 > 50) Goto LABEL009
  386.     If (INTEGER051 > 45) Goto LABEL010
  387.     If (INTEGER051 > 20) Goto LABEL011
  388.     If (INTEGER051 < 20) Goto LABEL012
  389.     If (INTEGER051 < 10) Goto LABEL013
  390.     :LABEL009
  391.     STRING002 = "@X09MISS@X07"
  392.     INTEGER003 = 0
  393.     Goto LABEL016
  394.     :LABEL010
  395.     STRING002 = "@X06GLANCING BLOW@X07"
  396.     STRING010 = "GLANCING"
  397.     Goto LABEL014
  398.     :LABEL011
  399.     STRING002 = "@X0BNORMAL HIT@X07"
  400.     STRING010 = "NORMAL"
  401.     Goto LABEL014
  402.     :LABEL012
  403.     STRING002 = " @X0ECRITICAL HIT!@X07"
  404.     STRING010 = "CRITICAL"
  405.     Goto LABEL014
  406.     :LABEL013
  407.     STRING002 = " @X0CMORTAL WOUND!@X07"
  408.     STRING010 = "MORTAL"
  409.     :LABEL014
  410.     Select Case (STRING010)
  411.         Case "NORMAL"
  412.             INTEGER001 = Random(2) + 1
  413.             INTEGER057 = INTEGER001 * INTEGER057
  414.             INTEGER002 = INTEGER057 / 3
  415.             If (INTEGER002 < 1) INTEGER002 = 0
  416.             If (INTEGER016 >= 1) INTEGER016 = INTEGER016 - INTEGER002
  417.             If (INTEGER016 <= 1) INTEGER016 = 0
  418.             INTEGER023 = INTEGER057 - INTEGER002
  419.             If (INTEGER023 < 0) INTEGER023 = 0
  420.             If (INTEGER028 > 0) INTEGER053 = INTEGER053 - 1
  421.             INTEGER014 = INTEGER014 - INTEGER023
  422.             Goto LABEL015
  423.         Case "GLANCING"
  424.             INTEGER002 = INTEGER016 * 2
  425.             If (INTEGER002 <= 2) INTEGER002 = Random(4) + 1
  426.             INTEGER023 = INTEGER057 - Abs(INTEGER002)
  427.             If (INTEGER023 < 0) INTEGER023 = 0
  428.             INTEGER014 = INTEGER014 - INTEGER023
  429.             Goto LABEL015
  430.         Case "CRITICAL"
  431.             INTEGER001 = Random(5) + 1
  432.             INTEGER023 = INTEGER001 * INTEGER057
  433.             If (INTEGER023 < 0) INTEGER023 = 0
  434.             INTEGER014 = INTEGER014 - INTEGER023
  435.             If (INTEGER028 > 0) INTEGER053 = INTEGER053 - 1
  436.             Goto LABEL015
  437.         Case "MORTAL"
  438.             INTEGER001 = Random(10) + 1
  439.             INTEGER057 = INTEGER001 * INTEGER057
  440.             INTEGER023 = INTEGER057
  441.             If (INTEGER023 < 0) INTEGER023 = 0
  442.             If (INTEGER028 > 0) INTEGER053 = INTEGER053 - 1
  443.             INTEGER014 = INTEGER014 - INTEGER023
  444.             If (STRING014 == 1) Goto LABEL026
  445.             If (INTEGER014 <= 0) Goto LABEL026
  446.             STRING014 = 1
  447.     End Select
  448.     :LABEL015
  449.     DPut 2, "HITPTS_L", INTEGER014
  450.     DPut 2, "ARMOR_D", INTEGER016
  451.     If (INTEGER028 == INTEGER038) DPut 0, "WEAPA0", INTEGER053
  452.     If (INTEGER028 == INTEGER041) DPut 0, "WEAPA1", INTEGER053
  453.     If (INTEGER028 == INTEGER044) DPut 0, "WEAPA2", INTEGER053
  454.     If (INTEGER028 == INTEGER047) DPut 0, "S_W_AMMO", INTEGER053
  455.     If (INTEGER014 < 0) Goto LABEL026
  456.     INTEGER003 = 0
  457.     Goto LABEL008
  458.     :LABEL016
  459.     If (INTEGER024 > 50) Goto LABEL017
  460.     If (INTEGER024 > 45) Goto LABEL018
  461.     If (INTEGER024 > 20) Goto LABEL019
  462.     If (INTEGER024 < 20) Goto LABEL020
  463.     If (INTEGER024 < 10) Goto LABEL021
  464.     :LABEL017
  465.     STRING003 = "@X09MISS@X07"
  466.     INTEGER003 = 0
  467.     Goto LABEL005
  468.     :LABEL018
  469.     STRING003 = "@X06GLANCING BLOW@X07"
  470.     STRING010 = "GLANCING"
  471.     Goto LABEL022
  472.     :LABEL019
  473.     STRING003 = "@X0BNORMAL HIT@X07"
  474.     STRING010 = "NORMAL"
  475.     Goto LABEL022
  476.     :LABEL020
  477.     STRING003 = " @X0ECRITICAL HIT@X07"
  478.     STRING010 = "CRITICAL"
  479.     Goto LABEL022
  480.     :LABEL021
  481.     STRING003 = " @X0CMORTAL WOUND!@X07"
  482.     STRING010 = "MORTAL"
  483.     :LABEL022
  484.     Select Case (STRING010)
  485.         Case "NORMAL"
  486.             INTEGER001 = Random(2) + 1
  487.             INTEGER019 = INTEGER001 * INTEGER019
  488.             INTEGER002 = INTEGER019 / 3
  489.             If (INTEGER002 < 1) INTEGER002 = 0
  490.             If (INTEGER054 >= 1) INTEGER054 = INTEGER054 - INTEGER002
  491.             If (INTEGER054 <= 1) INTEGER054 = 0
  492.             INTEGER050 = INTEGER019 - INTEGER002
  493.             If (INTEGER025 > 0) INTEGER015 = INTEGER015 - 1
  494.             If (INTEGER050 < 0) INTEGER050 = 0
  495.             INTEGER052 = INTEGER052 - INTEGER050
  496.             If (INTEGER052 <= 0) Goto LABEL024
  497.             Goto LABEL023
  498.         Case "GLANCING"
  499.             INTEGER002 = INTEGER054 * 2
  500.             If (INTEGER002 <= 2) INTEGER002 = Random(4) + 1
  501.             INTEGER050 = INTEGER019 - INTEGER002
  502.             If (INTEGER050 < 0) INTEGER050 = 0
  503.             INTEGER052 = INTEGER052 - INTEGER050
  504.             If (INTEGER052 <= 0) Goto LABEL024
  505.             Goto LABEL023
  506.         Case "CRITICAL"
  507.             INTEGER001 = Random(5) + 1
  508.             INTEGER023 = INTEGER001 * INTEGER019
  509.             If (INTEGER023 < 0) INTEGER023 = 0
  510.             INTEGER052 = INTEGER052 - INTEGER023
  511.             If (INTEGER025 > 0) INTEGER015 = INTEGER015 - 1
  512.             If (INTEGER052 <= 0) Goto LABEL024
  513.             Goto LABEL023
  514.         Case "MORTAL"
  515.             INTEGER001 = Random(10) + 1
  516.             INTEGER019 = INTEGER001 * INTEGER019
  517.             INTEGER050 = INTEGER019
  518.             If (INTEGER050 < 0) INTEGER050 = 0
  519.             If (INTEGER025 > 0) INTEGER015 = INTEGER015 - 1
  520.             INTEGER052 = INTEGER052 - INTEGER050
  521.             If (STRING020 == 1) Goto LABEL024
  522.             If (INTEGER052 <= 0) Goto LABEL024
  523.             STRING020 = 1
  524.     End Select
  525.     :LABEL023
  526.     DPut 0, "HITPTS_L", INTEGER052
  527.     DPut 0, "ARMOR_D", INTEGER054
  528.     DPut 2, "WEAPA0", INTEGER015
  529.     If (INTEGER052 < 0) Goto LABEL025
  530.     INTEGER003 = 3
  531.     Goto LABEL005
  532.     :LABEL024
  533.     If (INTEGER052 <= 0) Then
  534.         DPut 0, "VITALITY", "N"
  535.         DPut 0, "HITPTS_L", 0
  536.         DPut 0, "INFECTED", DGet(0, "INFECTED") + 20
  537.         Goto LABEL025
  538.     Endif
  539.     :LABEL025
  540.     Cls
  541.     StartDisp 1
  542.     PrintLn "                           ██┐  ██┐ ███████┐ ██┐  ██┐"
  543.     PrintLn "                           ██│  ██│ ██┌──██│ ██│  ██│"
  544.     PrintLn "                           ███████│ ██│  ██│ ██│  ██│"
  545.     PrintLn "                           └────██│ ██│  ██│ ██│  ██│"
  546.     PrintLn "                           ███████│ ███████│ ███████│"
  547.     PrintLn "                           └──────┘ └──────┘ └──────┘"
  548.     PrintLn 
  549.     PrintLn "                     ██┐  ██┐ ███████┐ ██┐    ██┐ ███████┐"
  550.     PrintLn "                     ██│  ██│ ██┌──██│ ██│    ██│ ██┌────┘"
  551.     PrintLn "                     ███████│ ███████│  ██┐  ██┌┘ █████┐"
  552.     PrintLn "                     ██┌──██│ ██┌──██│   ██┐██┌┘  ██┌──┘"
  553.     PrintLn "                     ██│  ██│ ██│  ██│    ███┌┘   ███████┐"
  554.     PrintLn "                     └─┘  └─┘ └─┘  └─┘    └──┘    └──────┘"
  555.     PrintLn 
  556.     PrintLn "                      @X8C ████████┐ ████┐███████┐ ████████┐@X0F"
  557.     PrintLn "                      @X8C └██┌──██│ └██┌┘██┌────┘ └██┌──██│@X0F"
  558.     PrintLn "                       @X8C ██│  ██│  ██│ █████┐    ██│  ██│@X0F"
  559.     PrintLn "                       @X8C ██│  ██│  ██│ ██┌──┘    ██│  ██│@X0F"
  560.     PrintLn "                      @X8C ████████│ ████┐███████┐ ████████│@X0F"
  561.     PrintLn "                      @X8C └───────┘ └───┘└──────┘ └───────┘@X0F"
  562.     Newline
  563.     DPut 0, "VITALITY", "N"
  564.     DGet 2, "KILLS", STRING009
  565.     DPut 2, "KILLS", ToInteger(STRING009) + 1
  566.     FAppend 1, PPEPath() + "DAILY.NWS", 2, 0
  567.     FPutLn 1, "@X0B" + Mixed(STRING018) + "@X0E WAS KILLED BY " + Mixed(STRING012)
  568.     FPutLn 1, "@X01≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡@X0F"
  569.     FClose 1
  570.     PrintLn "@X0CTo add to your embarrassment, your loss has been posted to the daily news!@X0F"
  571.     Call PPEPath() + "VRS-M19.PPE"
  572.     Goto LABEL029
  573.     :LABEL026
  574.     Cls
  575.     Newlines 5
  576.     PrintLn "        @X8A ▒██  ▒██ ▒██ ▒████▒██ ▒████▒██ ▒███████ ▒███████      ▒██@X0F"
  577.     PrintLn "        @X8A ▒██  ▒██ ▒██ ▒██▒█▒██ ▒██▒█▒██ ▒██      ▒██  ▒██      ▒██@X0F"
  578.     PrintLn "        @X82 ▒██  ▒██ ▒██ ▒██▒█▒██ ▒██▒█▒██ ▒██████  ▒███████      ▒██@X0F"
  579.     PrintLn "        @X82 ▒██▒█▒██ ▒██ ▒██▒█▒██ ▒██▒█▒██ ▒██      ▒██ ▒██          @X0F"
  580.     PrintLn "        @X8E ▒███████ ▒██ ▒██▒████ ▒██▒████ ▒███████ ▒██ ▒███      ▒██@X0F"
  581.     PrintLn ""
  582.     DGet 0, "R_FTS_L", INTEGER005
  583.     DPut 0, "R_FTS_L", INTEGER005 - 1
  584.     PrintLn "@X0EYour Mutant fights left for today (set by the sysop) are:@X0C ", DGet(0, "R_FTS_L")
  585.     DGet 0, "KILLS", STRING009
  586.     DPut 0, "KILLS", ToInteger(STRING009) + 1
  587.     PrintLn "@X0AYOUR TOTAL KILLS TO DATE ARE:@X0C ", DGet(0, "KILLS")
  588.     DPut 0, "CASH", INTEGER061 + INTEGER026
  589.     If (INTEGER026 > 0) PrintLn "@X0E", Mixed(STRING012) , " WAS CARRYING@X0A ", INTEGER026, "@X0E IN CASH, WHICH YOU TAKE..."
  590.     INTEGER062 = INTEGER062 + INTEGER018 * 100
  591.     DPut 0, "EXP", INTEGER062
  592.     PrintLn "Your Experience went up by: ", INTEGER018 * 100
  593.     PrintLn "Your Experience Points are now: ", INTEGER062
  594.     If (INTEGER017 == 1) Goto LABEL027
  595.     If (INTEGER025 > 0) Then
  596.         If ((DGet(0, "WEAPN1") < 1) && (DGet(0, "WEAPN2") > 1)) Then
  597.             DFCopy 0, "WEAPN1", 0, "WEAPN2"
  598.             DFCopy 0, "WEAPT1", 0, "WEAPT2"
  599.             DFCopy 0, "WEAPA1", 0, "WEAPA2"
  600.             DFCopy 0, "WEAPD1", 0, "WEAPD2"
  601.             DPut 0, "WEAPN2", 0
  602.             DPut 0, "WEAPT2", "NONE"
  603.             DPut 0, "WEAPA2", 0
  604.             DPut 0, "WEAPD2", 0
  605.         Endif
  606.         If (DGet(0, "WEAPN2") < DGet(0, "S_W_NUMBER")) Then
  607.             DFCopy 0, "WEAPN2", 0, "S_W_NUMBER"
  608.             DFCopy 0, "WEAPT2", 0, "S_W_NAME"
  609.             DFCopy 0, "WEAPA2", 0, "S_W_AMMO"
  610.             DFCopy 0, "WEAPD2", 0, "S_W_DAMAGE"
  611.             DPut 0, "S_W_NUMBER", 0
  612.             DPut 0, "S_W_NAME", "NONE"
  613.             DPut 0, "S_W_AMMO", 0
  614.             DPut 0, "S_W_DAMAGE", 0
  615.         Endif
  616.         PrintLn "@X0E", Mixed(STRING012), " had a nice@X09 ", Trim(STRING013, " "), "@X0E which you abscond with...@X0F"
  617.         DPut 0, "S_W_NUMBER", INTEGER025
  618.         DPut 0, "S_W_NAME", STRING013
  619.         DPut 0, "S_W_AMMO", INTEGER015
  620.         DPut 0, "S_W_DAMAGE", INTEGER019
  621.     Endif
  622.     Call PPEPath() + "VRS-M19.PPE"
  623.     Goto LABEL029
  624.     :LABEL027
  625.     DGo 0, STRING004
  626.     DPut 0, "VITALITY", "W"
  627.     DPut 0, "LEVEL", 1
  628.     DPut 0, "EXP", 1
  629.     DPut 0, "CASH", 0
  630.     DPut 0, "BANKED", 0
  631.     DPut 0, "WEAPN1", 0
  632.     DPut 0, "WEAPN2", 0
  633.     DPut 0, "S_W_NUMBER", 0
  634.     DPut 0, "WEAPT1", "NONE"
  635.     DPut 0, "WEAPT2", "NONE"
  636.     DPut 0, "S_W_NAME", "NONE"
  637.     DPut 0, "WEAPA1", 0
  638.     DPut 0, "WEAPA2", 0
  639.     DPut 0, "S_W_AMMO", 0
  640.     DPut 0, "WEAPD1", 0
  641.     DPut 0, "WEAPD2", 0
  642.     DPut 0, "S_W_DAMAGE", 0
  643.     DPut 0, "ARMOR_D", 0
  644.     DPut 0, "ARMOR_N", "NONE"
  645.     Cls
  646.     Newlines 2
  647.     PrintLn "@X0B                   ███████┐ ███████┐ ██┐     ████┐██┐  ██┐             @X0F"
  648.     PrintLn "@X0B                   ██┌────┘ ██┌────┘ ██│     └██┌┘ ██┐██┌┘             @X0F"
  649.     PrintLn "@X0B                   █████┐   █████┐   ██│      ██│   ███┌┘              @X0F"
  650.     PrintLn "@X0B                   ██┌──┘   ██┌──┘   ██│      ██│  ██┌██┐              @X0F"
  651.     PrintLn "@X0B                   ██│      ███████┐ ██████┐ ████┐██┌┘└██┐             @X0F"
  652.     PrintLn "@X0B                   └─┘      └──────┘ └─────┘ └───┘└─┘  └─┘             @X0F"
  653.     PrintLn 
  654.     PrintLn "@X0B           ████████┐ ███████┐ ███████┐ ████████┐ ███████┐ ██████┐ ██┐  @X0F"
  655.     PrintLn "@X0B           └██┌──██│ ██┌────┘ ██┌──██│ └──██┌──┘ ██┌────┘ ██┌─██│ ██│  @X0F"
  656.     PrintLn "@X0B            ███████│ █████┐   ███████│    ██│    █████┐   ██│ ██│ ██│  @X0F"
  657.     PrintLn "@X0B            ██┌──██│ ██┌──┘   ██┌──██│    ██│    ██┌──┘   ██│ ██│ ██│  @X0F"
  658.     PrintLn "@X0B           ████████│ ███████┐ ██│  ██│    ██│    ███████┐ ██│ ██████│  @X0F"
  659.     PrintLn "@X0B           └───────┘ └──────┘ └─┘  └─┘    └─┘    └──────┘ └─┘ └─────┘  @X0F"
  660.     Newlines 2
  661.     Call PPEPath() + "VRS-M19.PPE"
  662.     Cls
  663.     Newlines 5
  664.     PrintLn "@X0B        You have beaten Felix, the terror of the TurboShafts.  It takes  @X0F"
  665.     PrintLn "@X0Ba lot out of you to drag him back to the TurboLift, but you realize that @X0F"
  666.     PrintLn "@X0Bit's the *BEST* possible proof of your claim to bring him back with you. @X0F"
  667.     PrintLn 
  668.     PrintLn "@X0B        Dragging him through the Mall, many of your fellow soldiers back @X0F"
  669.     PrintLn "@X0Bup and look on in awe, excepting Dweezle, who sees what a heavy load     @X0F"
  670.     PrintLn "@X0Byou're struggling with and lends a hand.                                 @X0F"
  671.     PrintLn 
  672.     PrintLn "@X0B        He asks where you're planning on taking the body, and you reply  @X0F"
  673.     PrintLn "@X0Bthat you're *VERY* interested in that Scout suit of armor.  Dweezle      @X0F"
  674.     PrintLn "@X0Breplies that it's quite a bit smaller than you are, and your hopes are   @X0F"
  675.     PrintLn "@X0Bprobably in vain, but helps you drag him to the Body Shop for an expert  @X0F"
  676.     PrintLn "@X0Bopinion......                                                            @X0F"
  677.     Newlines 2
  678.     Call PPEPath() + "VRS-M19.PPE"
  679.     Cls
  680.     Newlines 3
  681.     PrintLn "@X0B        Getting to the Body Shop, your worst fears are confirmed.  There @X0F"
  682.     PrintLn "@X0Bis no possible way to stretch that armor to fit you.  While you are      @X0F"
  683.     PrintLn "@X0Barguing the point with the Armorer, you notice half a dozen MedTechs     @X0F"
  684.     PrintLn "@X0Bworking on the armor to get it open....                                  @X0F"
  685.     PrintLn 
  686.     PrintLn "@X0B        Dweezle points out that the money you're being offered for the   @X0F"
  687.     PrintLn "@X0Barmor would make anyone happy, and perhaps you should take it....        @X0F"
  688.     PrintLn 
  689.     PrintLn "@X0B        On consideration, you decide that this is a good idea, and take  @X0F"
  690.     PrintLn "@X0Bthe cash for the armor.                                                  @X0F"
  691.     PrintLn 
  692.     PrintLn 
  693.     PrintLn "@X0B        Dweezle takes you out for a celebratory drink...                 @X0F"
  694.     Newlines 5
  695.     Call PPEPath() + "VRS-M19.PPE"
  696.     Cls
  697.     Newlines 3
  698.     PrintLn "@X0D        On awakening the next morning, you feel horrible.  You visit the    @X0F"
  699.     PrintLn "@X0DMedic to find out what can be done, and he surprises you by saying that     @X0F"
  700.     PrintLn "@X0Dyour records are no longer in the computer...  You access the machine, and  @X0F"
  701.     PrintLn "@X0Dit refuses to take your ID - the MedTech takes a close look, and points out @X0F"
  702.     PrintLn "@X0Da newly healed scar on your arm - your ID chip is MISSING!                  @X0F"
  703.     PrintLn 
  704.     PrintLn "@X0D        As the MedTech implants a new chip for you, he mentions that they   @X0F"
  705.     PrintLn "@X0Dwere able to revive Felix two days ago, and that he seems stable at a       @X0F"
  706.     PrintLn "@X0Dten percent infection rate.  Hopefully he won't go rogue again....          @X0F"
  707.     PrintLn 
  708.     PrintLn "@X0D        You realize that not only have you lost all standing, cash,         @X0F"
  709.     PrintLn "@X0Dweapons, and armor, but that trusting someone named 'Dweezle' wasn't too    @X0F"
  710.     PrintLn "@X0Dbright in the first place....                                               @X0F"
  711.     Newlines 2
  712.     Call PPEPath() + "VRS-M19.PPE"
  713.     Cls
  714.     Newlines 5
  715.     PrintLn "@X0C        Well, it didn't take you too long to amass a small fortune the @X0F"
  716.     PrintLn "@X0Cfirst time around, so you plan on starting again tomorrow........      @X0F"
  717.     Newlines 3
  718.     Delay (5 * 182) / 10
  719.     Goto LABEL029
  720.     :LABEL028
  721.     Cls
  722.     PrintLn "              @X0A┌───────────────────@X02┐@X0F"
  723.     PrintLn "              @X0A│ @X0EWEAPONS AVAILABLE @X02│@X0F"
  724.     PrintLn "              @X0A└@X02───────────────────┘@X0F"
  725.     PrintLn "@X0A┌─────────────────────────────────────────────────────@X02┐@X0F"
  726.     PrintLn "@X0A│ @X0ECURRENTLY USING :@X0B ", STRING019, "@POS:55@@X02│@X0F"
  727.     PrintLn "@X0A└@X02─────────────────────────────────────────────────────┘@X0F"
  728.     PrintLn "@X0A┌───────@X02Weapon Name@X0A───────────────────@X02Ammo@X0A────@X02Damage@X0A──@X02┐@X0F"
  729.     PrintLn "@X0A│ @X02(@X0DA@X02)   @X0A", RTrim(STRING021, " "), "@X03@POS:40@", RTrim(INTEGER039, " "), "@X0C@POS:49@", RTrim(INTEGER040, " "), "@POS:55@@X02│@X0F"
  730.     If (INTEGER041 > 0) PrintLn "@X0A│ @X02(@X0DB@X02)  @X0A ", RTrim(STRING022, " ") , "@POS:40@@X03", RTrim(INTEGER042, " ") , "@X0C@POS:49@", RTrim(INTEGER043, " ") , "@POS:55@@X02│@X0F"
  731.     If (INTEGER044 > 0) PrintLn "@X0A│ @X02(@X0DC@X02)  @X0A ", RTrim(STRING023, " ") , "@X03@POS:40@", RTrim(INTEGER045, " ") , "@X0C@POS:49@", RTrim(INTEGER046, " ") , "@POS:55@@X02│@X0F"
  732.     If (INTEGER047 > 0) PrintLn "@X0A│@X0B───────@X02Scrounged Weapon@X0B──────────────────────────────@X02│@X0F"
  733.     If (INTEGER047 > 0) PrintLn "@X0A│ @X02(@X0DD@X02)  @X0A ", RTrim(STRING024, " ") , "@X03@POS:40@", RTrim(INTEGER048, " ") , "@X0C@POS:49@", RTrim(INTEGER049, " ") , "@POS:55@@X02│@X0F"
  734.     PrintLn "@X0A└@X02─────────────────────────────────────────────────────┘@X0F"
  735.     PrintLn 
  736.     InputStr "@X0DA@X0E, @X0DB@X0E, @X0DC @X0Eor @X0CQ@X0E to quit. Your Choice Soldier @X0A> _", STRING011, 10, 1, "ABCDQ", 0 + 8
  737.     Select Case (STRING011)
  738.         Case "A"
  739.             STRING019 = STRING021
  740.             INTEGER053 = INTEGER039
  741.             INTEGER057 = INTEGER040
  742.             INTEGER028 = INTEGER038
  743.             Return
  744.         Case "B"
  745.             STRING019 = STRING022
  746.             INTEGER053 = INTEGER042
  747.             INTEGER057 = INTEGER043
  748.             INTEGER028 = INTEGER041
  749.             Return
  750.         Case "C"
  751.             STRING019 = STRING023
  752.             INTEGER053 = INTEGER045
  753.             INTEGER057 = INTEGER046
  754.             INTEGER028 = INTEGER044
  755.             Return
  756.         Case "D"
  757.             STRING019 = STRING024
  758.             INTEGER053 = INTEGER048
  759.             INTEGER057 = INTEGER049
  760.             INTEGER028 = INTEGER047
  761.             Return
  762.         Case "Q"
  763.             Goto LABEL005
  764.     End Select
  765.     Return
  766.     :LABEL029
  767.     DPut 2, "VITALITY", "Y"
  768.     DPut 2, "HITPTS_L", DGet(2, "HITPTS_B")
  769.     DPut 2, "WEAPA0", 50
  770.     DCloseAll
  771.     End
  772.  
  773. ;------------------------------------------------------------------------------
  774. ;
  775. ; Usage report (before postprocessing)
  776. ;
  777. ; ■ Statements used :
  778. ;
  779. ;    2       End
  780. ;    12      Cls
  781. ;    3       ClrEol
  782. ;    123     Goto 
  783. ;    152     Let 
  784. ;    5       Print 
  785. ;    143     PrintLn 
  786. ;    111     If 
  787. ;    1       FAppend 
  788. ;    1       FClose 
  789. ;    2       FPutLn 
  790. ;    3       StartDisp 
  791. ;    1       Delete 
  792. ;    6       InputStr 
  793. ;    3       Gosub 
  794. ;    5       Return
  795. ;    5       Delay 
  796. ;    2       Newline
  797. ;    18      Newlines 
  798. ;    8       Call 
  799. ;    3       Backup 
  800. ;    1       EndFunc
  801. ;    2       DOpen 
  802. ;    2       DCloseAll
  803. ;    1       DnCloseAll 
  804. ;    5       DGo 
  805. ;    49      DGet 
  806. ;    61      DPut 
  807. ;    8       DFCopy 
  808. ;
  809. ;
  810. ; ■ Functions used :
  811. ;
  812. ;    15      *
  813. ;    9       /
  814. ;    60      +
  815. ;    27      -
  816. ;    46      ==
  817. ;    26      <
  818. ;    10      <=
  819. ;    28      >
  820. ;    2       >=
  821. ;    38      !
  822. ;    1       &&
  823. ;    2       Len(
  824. ;    2       Space()
  825. ;    12      RTrim()
  826. ;    6       Trim()
  827. ;    18      Random()
  828. ;    1       String()
  829. ;    12      PPEPath()
  830. ;    2       PcbNode()
  831. ;    1       GetEnv()
  832. ;    7       Abs()
  833. ;    5       ToInteger()
  834. ;    10      Mixed()
  835. ;    1       DRecNo()
  836. ;    13      DGet()
  837. ;
  838. ;------------------------------------------------------------------------------
  839. ;
  840. ; Analysis flags : C
  841. ;
  842. ; C - Call child PPE ■ 3
  843. ;     This is usually normal, but may be a tricky way to launch some
  844. ;     sysop-only commands.
  845. ;     ■ Search for : CALL
  846. ;
  847. ;------------------------------------------------------------------------------
  848. ;
  849. ; Postprocessing report
  850. ;
  851. ;    0       For/Next
  852. ;    0       While/EndWhile
  853. ;    17      If/Then or If/Then/Else
  854. ;    5       Select Case
  855. ;
  856. ;------------------------------------------------------------------------------
  857. ;                 AEGiS Corp - Break the routines, code against the machines!
  858. ;------------------------------------------------------------------------------
  859.